#ifndef __GT911_H__
#define __GT911_H__


#include"mcu_soft_iic.h"


//定义屏分辩率
#if 0
#define TP70_1024x600
#endif

#if 0
#define TP43_800x480
#endif

#if 1
#define TP43_480x272
#endif


//定义屏分辩率
#ifdef LCD_TYPE_RGB70_1024_600 
	#define TP70_1024x600
#endif

#ifdef LCD_TYPE_RGB43_800_480 
	#define TP43_800x480
#endif

#ifdef LCD_TYPE_RGB43_480_272 
	#define TP43_480x272
#endif



typedef struct
{
unsigned char Enable;
unsigned char i2c_addr;
unsigned char TouchpointFlag;
unsigned char Touchkey1trackid;
unsigned short X1;
unsigned short Y1;
unsigned short S1;
unsigned char  Touchkey2trackid;
unsigned short X2;
unsigned short Y2;
unsigned short S2;
unsigned char  Touchkey3trackid;
unsigned short X3;
unsigned short Y3;
unsigned short S3;
unsigned char  Touchkey4trackid;
unsigned short X4;
unsigned short Y4;
unsigned short S4;
unsigned char  Touchkey5trackid;
unsigned short X5;
unsigned short Y5;
unsigned short S5;
}GT911_T;

extern GT911_T g_GT911;

///* 定义GT911复位与中断引脚连接的GPIO端口 */
//void GT911_RST_1(void) ; /* RST = 1 */
//void GT911_RST_0(void) ; /* RST = 0 */
//void GT911_INT_1(void) ; /* INT = 1 */
//void GT911_INT_0(void) ; /* INT = 0 */
//unt32 GT911_INT_in(void) ; /* INT_IN */
//// 使能中断引脚，设置输入输出状态。
//void SET_GT911_INT_out(void);
//void SET_GT911_INT_in(void) ;
//void SET_GT911_RST_out(void);

extern IICdevice* iic_io;
extern gpio* rst_io;
extern gpio* int_io;

/* 定义GT911复位与中断引脚连接的GPIO端口 */
#define GT911_RST_1()  mcu_set_io(rst_io,1)  /* RST = 1 */
#define GT911_RST_0()  mcu_set_io(rst_io,0)  /* RST = 0 */
#define GT911_INT_1()  mcu_set_io(int_io,1)  /* INT = 1 */
#define GT911_INT_0()  mcu_set_io(int_io,0)  /* INT = 0 */
#define GT911_INT_in()  mcu_read_io(int_io)  /* INT_IN */
// 使能中断引脚，设置输入输出状态。
#define SET_GT911_INT_out()  mcu_set_io_out(int_io)
#define SET_GT911_INT_in()   mcu_set_io_in(int_io)
#define SET_GT911_RST_out()  mcu_set_io_out(rst_io)


/**********************************************************************************************************
*	函 数 名: GT911_ReadFirmwareVersion
*	功能说明: 获得GT911的芯片固件版本
*	形 参: 无
*	返 回 值: 16位版本号
**********************************************************************************************************/
unsigned short GT911_ReadFirmwareVersion(void);

/**********************************************************************************************************
*	函 数 名: GT911_ReadProductID
*	功能说明: 识别显示模块类别。读取GT911 ProductID。
*	形 参: 无
*	返 回 值: 显示模块类别
**********************************************************************************************************/
unsigned int GT911_ReadProductID(void);

/**********************************************************************************************************
*	函 数 名: GT911_ReadStatue
*	功能说明: G911读产品ID与配置参数版本号。
*	形 参: 无
*	返 回 值: 配置参数版本号
**********************************************************************************************************/
unsigned char  GT911_ReadStatue(void);


/**********************************************************************************************************
*	函 数 名: GT911_OnePiontScan
*	功能说明: 读取GT911触摸数据，这里仅读取一个触摸点。
*	形 参: 无
*	返 回 值: 无
**********************************************************************************************************/
//extern GUI_PID_STATE State;
int GT911_OnePiontScan(void);


/**********************************************************************************************************
*函 数 名: GT911_Scan
*	功能说明: 读取GT911触摸数据。读取全部的数据。
*	形 参: 无
*	返 回 值: 无
*********************************************************************************************************/
void GT911_Scan(void);



/*
*	函 数 名: GT911_Init
*	功能说明: GT911初始化
*	形 参: 无
*	返 回 值: 1成功 -1失败
*/
int GT911_Init(IICdevice* iic, gpio* i_rst, gpio* i_int);


void GT911_Test(IICdevice* iic, gpio* i_rst, gpio* i_int);






#endif
